Java抽象的概念,分別有抽象類別以及抽象方法;其中的關聯是,若該類別擁有抽象方法,就必須宣告為抽象類別(加上abstract)。抽象類別的用途是,當類別建立若尚未決定其內容主體,此時宣告成抽象方法,後續就能尤其子類別實作。這常用於父類別設計之時。
public abstract class MyClass { //抽象類別
public abstractor void myMethod(); //抽象方法
}
補充:抽象類別雖然沒有辦法實體化,但仍可包含靜態方法及mail方法,在不被實體化的狀況下被呼叫使用。
public abstract class Animal{ //抽象類別
private String name;
public Animal(String name){
this.name = name;
}
public abstract void makeSound(); //抽象方法
public String getName(){ //一般方法
return name;
}
}
public class Dog extends Animal { //狗狗子類別
public Dog(String name){
super(name);
}
@Override
public void makeSound(){ //覆寫抽象方法
System.out.println("Woof!");
}
}
public class Cat extends Animal { //貓咪子類別
public Cat(String name){
super(name);
}
@Override
public void makeSound(){
System.out.println("唷咪~~");
}
}
public class Main{
public static void main(String[] args){
Animal dog = new Dog("小白");
Animal cat = new Cat("小花");
System.out.println(dog.getName()+"says:"+dog.makeSound());
System.out.println(cat.getName()+"says:"+cat.makeSound());
//Dog、Cat為Animal子類別,故可使用父類別變數dog、cat指向子類別Dog、Cat。屬於多型的應用 。
}
}